home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48_1 / hpspice < prev    next >
Internet Message Format  |  1995-03-31  |  17KB

  1. From @VM.CC.PURDUE.EDU:ARD@SIVA.BRISTOL.AC.UK  Tue Apr 16 13:15:44 1991
  2. Received: from bank.ecn.purdue.edu by en.ecn.purdue.edu (5.65/1.30jrs)
  3.     id AA09839; Tue, 16 Apr 91 13:15:44 -0500
  4. Received: from vm.cc.purdue.edu by bank.ecn.purdue.edu (5.65/1.30jrs)
  5.     id AA01236; Tue, 16 Apr 91 13:15:41 -0500
  6. Message-Id: <9104161815.AA01236@bank.ecn.purdue.edu>
  7. Received: from PURCCVM.BITNET by VM.CC.PURDUE.EDU (IBM VM SMTP V2R1)
  8.    with BSMTP id 5236; Tue, 16 Apr 91 13:15:29 EST
  9. Received: from UKACRL.BITNET by PURCCVM.BITNET (Mailer R2.07) with BSMTP id
  10.  0562; Tue, 16 Apr 91 13:15:14 EST
  11. Received: from RL.IB by UKACRL.BITNET (Mailer R2.07) with BSMTP id 7767; Tue,
  12.  16 Apr 91 19:14:46 BST
  13. Received: from RL.IB by UK.AC.RL.IB (Mailer R2.07) with BSMTP id 6882; Tue, 16
  14.           Apr 91 19:14:45 BST
  15. Via:      UK.AC.BRIS.SIVA; 16 APR 91 19:14:17 BST
  16. Date:     Tue, 16 Apr 91  19:13 BST
  17. From: "PDP11 Hacker ....." <ARD@SIVA.BRISTOL.AC.UK>
  18. To: WSCOTT@ECN.PURDUE.EDU
  19. Subject:  Hp48 program
  20. Status: OR
  21.  
  22.  
  23. This program for the HP48 calculates the voltages at the nodes of a general
  24. linear circuit by solving the equation :
  25. Y.V = I
  26. where  Y is the (Complex) admittance matrix (I'll define this later), V is a
  27. vector of the (unknown) voltages at the nodes, and I is the vector of current
  28. sources (known). The program will calculate the voltages at a given frequency
  29. or will plot the Amplitude or phase as a function of frequency.
  30.  
  31. Theory
  32. ------
  33.    Iij
  34. *-->-----Zij-----*
  35. i                j
  36.  
  37. Now, Iij = (Vi-Vj)*Yij   (where Yij=1/Zij is the complex admittance)
  38. and also Sum(j, Iij) = Sum(current sources connected to node i) by Kirchoff 1
  39.  
  40. Therefore, we can write the circuit in matrix form as follows:
  41. for each admittance Yij, add it to the complex matrix Y[] like this :
  42. add Yij to the positions Y[i,i] and Y[j,j] and subtract it from the positions
  43. Y[i,j] and [j,i]. Repeat this for all the components in the circuit. Now create
  44. a column vector of current sources, with a source I from node i to node j being
  45. represented by adding I to the element j and subtracting it from the element i
  46. of the vector. Then we can solve the equation for the V vector as given above.
  47.  There is however a problem! The system is _always_ singular, which
  48. corresponds to the physical statement that only potential _differences_ are
  49. measured. However, if we assign node 0 as ground, and only put nodes 1 and
  50. higher in the matrix, then the system has a solution (in general), so we can
  51. procede.
  52.   This theory can be found (and much more clearly explained!!) in most books on
  53. AC circuit Theory.
  54.   This program converts the inputed components into 3 matrices MatR,MatL,MatC
  55. which represent the Resistive, Inductive and Capacitive components of Y[]. The
  56. routine F\->V calculates Y[] for the given frequency (Y=MatR + 2*pi*i*MatC +
  57. 1/(2*pi*i)*MatL) and then solves the equation
  58.  
  59. Using the program
  60. -----------------
  61. Download the source (given at the end of this article) to your HP48 and select
  62. its directory. Then select the CST custom menu.
  63. An example circuit (the LRC series resonant circuit) is loaded with the
  64. program. To see it, Do NOT CLEAR,  then COMPILE, select output node 3, 1000
  65.   10000 FRNG, and press amplitude. Then Wait!
  66. Firstly clear the circuit by pressing CLEAR (2nd Key on the 2nd page of CST)
  67. Then enter your circuit (See below for details)
  68. Then compile your circuit by pressing COMPILE (3rd key on 2nd page of CST)
  69. If you want to see the voltages on the nodes of your circuit at a given
  70. frequency, put the frequency on Top of stack, and press F\->V (4th key on 2nd
  71. page of CST). A vector is returned to the stack giving the voltages of all the
  72. nodes in your circuit.
  73. To plot out either the amplitude or phase response, you must first select the
  74. node that you wish to plot. To do this, press the 5th key on the 2nd page of
  75. CST (labeled with an output icon), and it will prompt you for the node to use.
  76. If you would rather select the node from top of stack, then Left shift the
  77. output key. Then select the frequency range using the FRNG key (2nd key on 3rd
  78. page of CST) which is simply the XRNG function and press either Amplitude (6th
  79. key on the 2nd page) or Phase (1st key on 3rd page) and wait for the graph.
  80.  
  81. Entering your circuit
  82. ---------------------
  83. This program handles 7 types of circuit element which are selected by the first
  84. 7 keys on the CST menu. If you would rather take the values from the stack, use
  85. the same keys left shifted. In either case, the nodes are prompted for by the
  86. program.
  87.  
  88. For each key I'll give the values it expects to get from the stack if left
  89. shifted, or prompts for if simply pressed
  90. (note: you may use unit objects for the values, provided they are correct!)
  91.  
  92. Resistors - R (Ohms)
  93. Capacitors - C (Farads)
  94. Inductors - L (Henries)
  95.  
  96. Current source - I(amps)
  97.  
  98. Voltage source - V(volts), r(Ohms - internal resistance must not be 0)
  99.  
  100. IcIs (Current Controlled Current Source - e.g. Bipolar Transistor), Beta and
  101. input resistance. The nodes are :
  102.  
  103. Input to------+      +--------- Output To
  104.               !      !
  105.               /      O
  106.               \      O
  107.               /      !
  108.               !      !
  109. In from ------+      +----------Output from
  110.  
  111. VcIs (Voltage controlled Current Source - e.g. FET), gm (Siemens)
  112.   Nodes are as for IcIs
  113.  
  114. Printing out your circuit
  115. -------------------------
  116. To print out the components in your circuit press the 3rd key in the 3rd page
  117. of CST (labeled with a printer Icon). The stack will be left full of strings
  118. representing the elements of your circuit for those users without a printer.
  119.  
  120. Subroutine \->ENG
  121. -----------------
  122. This routine may be useful in other programs, so I'll document it here:
  123. Input stack     2 : Real number                e.g   2:  10000
  124.                 1 : "Unit as string:                 1:    "m"
  125.  
  126. Output          1:  "string of number                1: "'10_km'"
  127.                      and unit in engineering
  128.                      notation"
  129.  
  130.  
  131.  
  132. Note: If there is sufficient interest, I'll document the internal data
  133. structures, and also what all the subroutines do !
  134.  
  135. *******************************************************************************
  136. *  This Program may be freely copied, distributed via mail-servers or any     *
  137. *  Network provided my name remains attached to it. It may also be            *
  138. *  modified provided a note is made of the modifications                      *
  139. *                                                                             *
  140. *                                                                             *
  141. *   Written by A.R.Duell  (ARD @ UK.AC.BRIS.SIVA   Janet)                     *
  142. *                         (ARD@SIVA.BRIS.AC.UK     Bitnet)                    *
  143. *******************************************************************************
  144.  
  145. Subroutines and Variables
  146. -------------------------
  147. Print          Print out circuit on printer
  148. PHASE          Display Phase Graph
  149. Amplitude      Display Amplitude Graph
  150. PEQ            Phase Equation (used by PHASE)
  151. FEQ            Amplitude Equation
  152. F\->O          Takes REAL frequency on top of stack and returns COMPLEX voltage
  153.                of output node
  154. F\->V          Takes REAL frequency on top of stack and returns COMPLEX vector
  155.                of node voltages
  156. pOUT           Routine to select output node by prompting user
  157. sOUT           Routine to select output node from Top of Stack
  158.  
  159. cIcIs          !
  160. cVcIs          !
  161. cVs            !
  162. cIs            ! Routines to compile components into the addmittance
  163. cC             ! matrices. Each takes a list in Top of Stack to
  164. cL             ! specify values and nodes
  165. cR             !
  166.  
  167. pR             !
  168. pC             !
  169. pL             !
  170. pIs            !  Routines to Get component values into the Variable
  171. pVs            !  Circuit. Prompt user for all input
  172. pIcIs          !  (CST menu keys)
  173. pVcIs          !
  174.  
  175. sVcIs          !
  176. sIcIs          !
  177. sVs            !
  178. sIs            ! Routines to get component values into the Varaible
  179. sL             ! Circuit. Take value(s) from Top of Stack, Prompt for
  180. sC             ! Nodes (Left Shifted CST menu keys)
  181. sR             !
  182.  
  183. oIcIs          !
  184. oVcIs          !
  185. oVs            !
  186. oIs            ! Routines to convert compoent specification list to a
  187. oL             ! string. Used by Print
  188. oC             !
  189. oR             !
  190.  
  191. Nodes4         ! Internal routines for Print
  192. Nodes2         !
  193.  
  194. F              Frequency
  195. EQ             Equation
  196. PPAR           Plot Parameters
  197. out            Output node (The one that will be plotted)
  198. CST            Custom Menu
  199. COMPILE        Convert Circuit to the admittance matrices
  200. Term4          Handle 4 terminal components
  201. Term2          Handle 2 terminal components
  202. PUTV           Put 2nd on stack into I vector at position given by TOS
  203. PUTM           Put 3rd on stack into matrix given by 4th on stack at position
  204.                given by 1st (column) and 2nd (row) of stack
  205. I              Current Source Vector
  206. MatL           Inductive admittance
  207. MatC           Capacitive Admittance
  208. MatR           Resistive admittance
  209. Cre            Create Matrices
  210. MAXnodes       Returns highest node used in circuit
  211. CLC            Clears the circuit
  212.  
  213. iVcIs          ! Internal routines to enter current sources
  214. iIcIs          ! Take all parameters off stack
  215.  
  216. \->ENG         Real in 2nd on stack, Unit (as String) in TOS, gives a
  217.                'Engineering Unit' as a string on TOS.
  218.                e.g 1E-7 "F" \->ENG gives "'100_nF'"
  219. \->SI          Removes units if pressent, and converts to SI if possible
  220. Nodes          Prompts user for node numbers
  221.  
  222. iVs            !
  223. iIs            ! Internal routines for component entry
  224. iL             ! (see iVcIs)
  225. iC             !
  226.  
  227. Append         Append component to circuit
  228.  
  229. iR             Internal routine for resistor entry
  230.  
  231. Passive        Internal routine for passive component entry
  232. Circuit        circuit stored as list of lists.
  233.  
  234. ------------------>8-------------------->8-------------->8------------------
  235. %%HP: T(3)A(R)F(.);
  236. DIR
  237.   Print
  238.     \<< 1 Circuit
  239. SIZE
  240.       FOR j Circuit
  241. j GET DUP 1 GET "o"
  242. SWAP + OBJ\-> PR1
  243.       NEXT
  244.     \>>
  245.   PHASE
  246.     \<< PICT PURGE
  247. 'PEQ' STEQ 'F'
  248. INDEP AUTO DRAW
  249. GRAPH
  250.     \>>
  251.   Amplitude
  252.     \<< PICT PURGE
  253. 'FEQ' STEQ 'F'
  254. INDEP AUTO DRAW
  255. GRAPH
  256.     \>>
  257.   PEQ
  258.     \<< F F\->O ARG
  259.     \>>
  260.   FEQ
  261.     \<< F F\->O ABS
  262.     \>>
  263.   F\->O
  264.     \<< F\->V out GET
  265.     \>>
  266.   F\->V
  267.     \<< 2 * \pi * i *
  268. \->NUM DUP MatC *
  269. SWAP INV MatL * +
  270. MatR + I SWAP /
  271.     \>>
  272.   pOUT
  273.     \<< "Output Node"
  274. "" INPUT OBJ\-> sOUT
  275.     \>>
  276.   sOUT
  277.     \<< 'out' STO
  278.     \>>
  279.   cIcIs
  280.     \<< DUP 2 GET
  281. OBJ\-> DROP SWAP OVER
  282. / 3 PICK 3 GET OBJ\->
  283. DROP 'MatR' 6 ROLLD
  284. Term4 INV SWAP 3
  285. GET OBJ\-> 3 DROPN
  286. 'MatR' 4 ROLLD
  287. Term2
  288.     \>>
  289.   cVcIs
  290.     \<< DUP 2 GET
  291. OBJ\-> DROP SWAP 3
  292. GET OBJ\-> DROP
  293. 'MatR' 6 ROLLD
  294. Term4
  295.     \>>
  296.   cVs
  297.     \<< DUP 2 GET
  298. OBJ\-> DROP SWAP OVER
  299. / 1 \->LIST 3 PICK 3
  300. GET "" 3 ROLLD 3
  301. \->LIST cIs 1 \->LIST 2
  302. SWAP PUT cR
  303.     \>>
  304.   cIs
  305.     \<< DUP 2 GET
  306. OBJ\-> DROP SWAP 3
  307. GET OBJ\-> DROP 3
  308. PICK SWAP PUTV SWAP
  309. NEG SWAP PUTV
  310.     \>>
  311.   cC
  312.     \<< DUP 2 GET
  313. OBJ\-> DROP SWAP 3
  314. GET OBJ\-> DROP
  315. 'MatC' 4 ROLLD
  316. Term2
  317.     \>>
  318.   cL
  319.     \<< DUP 2 GET
  320. OBJ\-> DROP INV SWAP
  321. 3 GET OBJ\-> DROP
  322. 'MatL' 4 ROLLD
  323. Term2
  324.     \>>
  325.   cR
  326.     \<< DUP 2 GET
  327. OBJ\-> DROP INV SWAP
  328. 3 GET OBJ\-> DROP
  329. 'MatR' 4 ROLLD
  330. Term2
  331.     \>>
  332.   pR
  333.     \<< "Resistance"
  334. "" INPUT OBJ\-> sR
  335.     \>>
  336.   pC
  337.     \<< "Capacitance"
  338. "" INPUT OBJ\-> sC
  339.     \>>
  340.   pL
  341.     \<< "Inductance"
  342. "" INPUT OBJ\-> sL
  343.     \>>
  344.   pIs
  345.     \<< "Current" ""
  346. INPUT OBJ\-> sIs
  347.     \>>
  348.   pVs
  349.     \<< "Voltage" ""
  350. INPUT OBJ\->
  351. "Internal R" ""
  352. INPUT OBJ\-> sVs
  353.     \>>
  354.   pIcIs
  355.     \<< "\Gb" "" INPUT
  356. OBJ\->
  357. "Input Resistance"
  358. "" INPUT OBJ\-> sIcIs
  359.     \>>
  360.   pVcIs
  361.     \<< "gm" "" INPUT
  362. OBJ\-> sVcIs
  363.     \>>
  364.   sVcIs
  365.     \<< \->SI
  366. "VcIs Control"
  367. Nodes "VcIs Output"
  368. Nodes iVcIs
  369.     \>>
  370.   sIcIs
  371.     \<< \->SI
  372. "IcIs Control"
  373. Nodes "IcIs Output"
  374. Nodes iIcIs
  375.     \>>
  376.   sVs
  377.     \<< SWAP \->SI SWAP
  378. \->SI OVER "V" \->ENG
  379. \->STR "Source" +
  380. Nodes iVs
  381.     \>>
  382.   sIs
  383.     \<< \->SI DUP "A"
  384. \->ENG \->STR "Source"
  385. + Nodes iIs
  386.     \>>
  387.   sL
  388.     \<< \->SI DUP "H"
  389. \->ENG \->STR
  390. "Inductor" + Nodes
  391. iL
  392.     \>>
  393.   sC
  394.     \<< \->SI DUP "F"
  395. \->ENG \->STR
  396. "Capacitor" + Nodes
  397. iC
  398.     \>>
  399.   sR
  400.     \<< \->SI DUP "\GW"
  401. \->ENG \->STR
  402. "Resistor" + Nodes
  403. iR
  404.     \>>
  405.   oIcIs
  406.     \<< DUP 2 GET
  407. OBJ\-> DROP "\GW" \->ENG
  408. " Ri= " SWAP + SWAP
  409. "\Gb= " SWAP + SWAP +
  410. "IcIs " SWAP +
  411. Nodes4
  412.     \>>
  413.   oVcIs
  414.     \<< DUP 2 GET
  415. OBJ\-> DROP "S" \->ENG
  416. " gm= " SWAP +
  417. "VcIs " SWAP +
  418. Nodes4
  419.     \>>
  420.   oVs
  421.     \<< DUP 2 GET
  422. OBJ\-> DROP SWAP "V"
  423. \->ENG "," + SWAP "\GW"
  424. \->ENG + " Source " +
  425. Nodes2
  426.     \>>
  427.   oIs
  428.     \<< DUP 2 GET
  429. OBJ\-> DROP "A" \->ENG
  430. " Source " + Nodes2
  431.     \>>
  432.   oL
  433.     \<< DUP 2 GET
  434. OBJ\-> DROP "H" \->ENG
  435. " Inductor " +
  436. Nodes2
  437.     \>>
  438.   oC
  439.     \<< DUP 2 GET
  440. OBJ\-> DROP "F" \->ENG
  441. " Capacitor " +
  442. Nodes2
  443.     \>>
  444.   oR
  445.     \<< DUP 2 GET
  446. OBJ\-> DROP "\GW" \->ENG
  447. " Resistor " +
  448. Nodes2
  449.     \>>
  450.   Nodes4
  451.     \<< SWAP 3 GET
  452. OBJ\-> DROP \->STR
  453. " Out To: " SWAP +
  454. SWAP \->STR
  455. " Out From: " SWAP
  456. + SWAP + SWAP \->STR
  457. " Control To: "
  458. SWAP + SWAP + SWAP
  459. \->STR
  460. " Control From: "
  461. SWAP + SWAP + +
  462.     \>>
  463.   Nodes2
  464.     \<< SWAP 3 GET
  465. OBJ\-> DROP \->STR
  466. " To: " SWAP + SWAP
  467. \->STR " From: " SWAP
  468. + SWAP + +
  469.     \>>
  470.   F 10247.5
  471.   EQ FEQ
  472.   PPAR {
  473. (1000,-.163546000382)
  474. (5000,1.14826715787)
  475. F 0 (0,0) FUNCTION
  476. Y }
  477.   out 3
  478.   CST { {
  479. GROB 21 8 FFFFF1FDFDF1FAFAF1177781FFAFF1FFDFF1FFFFF1FFFFF1
  480. { pR sR } } {
  481. GROB 21 8 FFFFF1FFAFF1FFAFF1102081FFAFF1FFAFF1FFFFF1FFFFF1
  482. { pC sR } } {
  483. GROB 21 8 FFFFF1FFFFF1F55DF1FAAAF11AA281FFFFF1FFFFF1FFFFF1
  484. { pL sL } } {
  485. GROB 21 8 FFFFF1F9CFF1F6BFF11B60E1F6BFF1F9CFF1FFFFF1FFFFF1
  486. { pIs sIs } } {
  487. GROB 21 8 FFFFF1F7FFF1F7FFF1F5FFF1340EF1F5FFF1F7FFF1F7FFF1
  488. { pVs sVs } } {
  489. "ICIS" { pIcIs
  490. sIcIs } } { "VCIS"
  491. { pVcIs sVcIs } } {
  492. "CLEAR" CLC }
  493. COMPILE F\->V {
  494. GROB 21 8 FFFFF1FFCFF110CBF1FFC7F1FF70E1FFC7F1F1CBF1FDCFF1
  495. { pOUT sOUT } } {
  496. GROB 21 8 FFFFF13FF7F1DEF3E1EDF7F1FB77F1F7B3E1FFC7F1FFFFF1
  497. Amplitude } { "\O/"
  498. PHASE } { "FRNG"
  499. XRNG } {
  500. GROB 21 8 FF1EF1F3EEF17CFEF17FFEF13008F1BFFBF1BFFBF1BFFBF1
  501. Print } }
  502.   COMPILE
  503.     \<< MAXnodes Cre
  504. 1 Circuit SIZE
  505.       FOR j Circuit
  506. j GET DUP 1 GET "c"
  507. SWAP + OBJ\->
  508.       NEXT
  509.     \>>
  510.   Term4
  511.     \<< \-> m v in1 in2
  512. on1 on2
  513.       \<< m v NEG on1
  514. in1 PUTM m v NEG
  515. on2 in2 PUTM m v
  516. on1 in2 PUTM m v
  517. on2 in1 PUTM
  518.       \>>
  519.     \>>
  520.   Term2
  521.     \<< \-> m v n1 n2
  522.       \<< m v n1 n1
  523. PUTM m v n2 n2 PUTM
  524. m v NEG n1 n2 PUTM
  525. m v NEG n2 n1 PUTM
  526.       \>>
  527.     \>>
  528.   PUTV
  529.     \<< DUP
  530.       IF 0 >
  531.       THEN 1 \->LIST
  532. SWAP 'I' 3 ROLLD 3
  533. PICK 3 PICK GET +
  534. PUT
  535.       ELSE DROP2
  536.       END
  537.     \>>
  538.   PUTM
  539.     \<< OVER OVER *
  540.       IF 0 >
  541.       THEN 2 \->LIST
  542. SWAP 3 PICK 3 PICK
  543. GET + PUT
  544.       ELSE 4 DROPN
  545.       END
  546.     \>>
  547.   I
  548. [ (.24,0) (0,0) (0,0) ]
  549.   MatL
  550. [[ 14.7058823529 -14.7058823529 0 ]
  551.  [ -14.7058823529 14.7058823529 0 ]
  552.  [ 0 0 0 ]]
  553.   MatC
  554. [[ 0 0 0 ]
  555.  [ 0 .0000001 -.0000001 ]
  556.  [ 0 -.0000001 .0000001 ]]
  557.   MatR
  558. [[ .02 0 0 ]
  559.  [ 0 0 0 ]
  560.  [ 0 0 .1 ]]
  561.   Cre
  562.     \<< DUP DUP 2
  563. \->LIST 0 CON DUP
  564. 'MatR' STO DUP
  565. 'MatC' STO 'MatL'
  566. STO 1 \->LIST (0,0)
  567. CON 'I' STO
  568.     \>>
  569.   MAXnodes
  570.     \<< 0 1 Circuit
  571. SIZE
  572.       FOR m Circuit
  573. m GET 3 GET DUP
  574. SIZE 1 SWAP
  575.         FOR n DUP n
  576. GET ROT MAX SWAP
  577.         NEXT DROP
  578.       NEXT
  579.     \>>
  580.   CLC
  581.     \<< { } 'Circuit'
  582. STO
  583.     \>>
  584.   iVcIs
  585.     \<< 4 \->LIST SWAP
  586. 1 \->LIST SWAP "VcIs"
  587. 3 ROLLD 3 \->LIST 1
  588. \->LIST Append
  589.     \>>
  590.   iIcIs
  591.     \<< 4 \->LIST 3
  592. ROLLD 2 \->LIST SWAP
  593. "IcIs" 3 ROLLD 3
  594. \->LIST 1 \->LIST
  595. Append
  596.     \>>
  597.   \->ENG
  598.     \<< SWAP ABS SWAP
  599. \-> v u
  600.       \<< "1_" u +
  601. OBJ\-> v * v XPON 3 /
  602. FLOOR -4 MAX 3 MIN
  603. 5 + { "p" "n" "\Gm"
  604. "m" "" "k" "M" "G"
  605. } SWAP GET u + "1_"
  606. SWAP + OBJ\-> CONVERT
  607.       \>>
  608.     \>>
  609.   \->SI
  610.     \<< DUP TYPE
  611.       IF 1 >
  612.       THEN UBASE
  613. OBJ\-> DROP
  614.       END
  615.     \>>
  616.   Nodes
  617.     \<< DUP
  618. "
  619. Node From" + ""
  620. INPUT OBJ\-> SWAP
  621. "
  622. Node To" + ""
  623. INPUT OBJ\->
  624.     \>>
  625.   iVs
  626.     \<< 2 \->LIST 3
  627. ROLLD 2 \->LIST SWAP
  628. "Vs" 3 ROLLD 3
  629. \->LIST 1 \->LIST
  630. Append
  631.     \>>
  632.   iIs
  633.     \<< Passive "Is"
  634. 3 ROLLD 3 \->LIST 1
  635. \->LIST Append
  636.     \>>
  637.   iL
  638.     \<< Passive "L" 3
  639. ROLLD 3 \->LIST 1
  640. \->LIST Append
  641.     \>>
  642.   iC
  643.     \<< Passive "C" 3
  644. ROLLD 3 \->LIST 1
  645. \->LIST Append
  646.     \>>
  647.   Append
  648.     \<< Circuit SWAP
  649. + 'Circuit' STO
  650.     \>>
  651.   iR
  652.     \<< Passive "R" 3
  653. ROLLD 3 \->LIST 1
  654. \->LIST Append
  655.     \>>
  656.   Passive
  657.     \<< 2 \->LIST SWAP
  658. 1 \->LIST SWAP
  659.     \>>
  660.   Circuit { { "Vs"
  661. { 12 50 } { 0 1 } }
  662. { "L" { .068 } { 1
  663. 2 } } { "C" {
  664. .0000001 } { 2 3 }
  665. } { "R" { 10 } { 0
  666. 3 } } { "R" { 1000
  667. } { 5 3 } } }
  668. END
  669.  
  670.